پردازش در سیستم عامل
مهمترین مفهوم در هر سیستم عامل فرآیند یا پردازش (process) است . تمامی نرم افزارهای کامپیوتر از جمله سیستم عامل به تعدادی از پروسس ها سازماندهی و تقسیم بندی میشوند.
یک پردازش برنامهای در حال اجراست . در واقع یک پروسس فقط یک برنامه اجرایی است که علاوه بر کد برنامه (یا بخش متن text segment) شامل مقدار شمارنده برنامه, رجیسترهای CPU ,پشته و بخش دادهها(Data segment) است . به عبارتی دیگر میتوان گفت که هر پروسس CPU مجازی خود را دارد . در سیستم چند برنامگی CPU از یک پروسس به پروسسی دیگر سوئیچ میکند و هر کدام را به مدت چند ده یا چند صد میلی ثانیه به اجرا در میآورد.
باید دقت کرد که یک برنامه به خودی خود یک پردازش نیست .برنامه الگوریتمی است که محتویات یک فایل بر روی دیسک ذخیره شده است . به عبارتی دیگر برنامه یک نهاد غیر فعال (passive) است .
در حالیکه پردازش یک نهاد فعال(active) میباشد که در حال اجراست .
مثلاً در یک کامپیوتر کاربران متعددی ممکن است در حال اجرای نسخههای متعددی از برنامه ویرایشگر باشند یا مثلاً یک کاربر میتواند چند نسخه از برنامه ویرایشگر را همزمان اجراء کند , در این حال هر کدام از آنها یک پردازش جداگانهاند و اگر چه بخش متن شان (کدشان )یکسان است ولی بخش دادههایشان متفاوت میباشد .
در سیستمها روشی مورد نیاز است تا در حین کار بتوان پروسسهایی را ایجاد کرد یا از بین برد در UNIXو پروسسها توسط فراخوان سیستمی fork پدید میآیند, این فراخوانی یک پردازش فرزند تولید میکند که نسخهای دقیقاً یکسان با پروسس پدر خواهد بود.
به همین ترتیب پردازش فرزند نیز میتواند fork را اجراء کرده و لذا سیستم میتواند درختی از پروسسها داشته باشد. بدیهی است هر پروسس فقط یک پدر دارد ولی میتواند صفر یا چندین فرزند داشته باشد.
حالات یک پردازش
یک پروسس در زمان حیات خود میتواند دریکی از سه وضعیف اجراء (Running) , آماده (Ready) وبسته (Blocked) قرار گیرد.
هنگامی که دستور اجراء پردزاشی صادر میگردد این پردازش به صف آماده وارد شده و منتظر CPU میماند . انتقال توسط زمانبند پردازش (process sheduler) که بخشی از سیستم عامل است انجام میشود , بدون اینکه خود پروسس از آن اطلاعی داشته باشد. سپس CPU, به پروسس داده میشود تا اجراء گردد .
انتقالزمانی صورت میگیرد که برش زمانی پردازش تمام شده و CPU باید از او گرفته شود , لذا پروسس از حالت Running به حالت Ready میرود . زمانبندی یعنی اینکه در کدام زمان چه پردازشی جهت اجرا انتخاب گردد.
هنگامی که لازم باشد در حال اجرا برای بروز رخدادی(مثل تکمیل انتقال اطلاعات در دستورات I/O) صبر کند آنگاه از حالت Running به حالت Blocked میرود. پس از رفع علت انتظار (مثلاً وقفهای اعلام میکند که انتقال پایان یافته ) پردازش به حالت آماده رفته و در صف انتظار CPU قرار میگیرد.
بلوک کنترلی پردازش
پردازش برنامه در حال اجراست . ولی از دید سیستم عامل میتوان گفت پردازش در سیستم عامل یکسری ساختمان داده است .
هر پردازش در سیستم عامل در سیستم عامل توسط یک ساختمان داده به نام بلوک کنترل پردازش در سیستم عامل PCB یا process Control Blockنشان داده میشود. PCB شامل اطلاعات زیادی در مورد یک پردازش در سیستم عامل است . این اطلاعات مثلاً هنگامیکه پروسس از «حالت اجرا» به حالت «آماده » میرود لازم است ذخیره شود که اگر دوباره پروسس خواست به حالت اجرا برگردد از همان نقطه ای که قطع شدهبود، به درستی ادامه یابد . این اطلاعات عبارتند از :
حالت جاری پردازش در سیستم عامل : که میتواند، آماده،اجراء یا بسته باشد.
شمارنده برنامه:(program Conuter=PC) که آدرس دستورالعمل بعدی قابل اجرای پردازش در سیستم عامل را نشان میدهد .
محل حفظ ثباتها: هنگام وقوع یا سوئیچ کردن بین پردازشهای پردازش در سیستم عامل جاری میبایست در PCB مربوط ذخیره شوند تابعداً دوباره بازیابی شوند .
اطلاعات زمانبندی CPU : مثل اولویت پردازش در سیستم عامل ، اشارهگرها به صفهای زمانبندی و غیره
اطلاعات مدیرت حافظه: مثل محل قرار گیری پردازش در سیستم عامل در حافظه و مسائل حفاظتی آن.
اطلاعات وضعیت I/O :شامل لیستی از وسایل I/O تخصیص یافته به پردازش در سیستم عامل ، لیست فایلهای باز شده برای پردازش در سیستم عامل و غیره
اطلاعات حسابرسی : مثل میزان زمان CPU مصرف شده برای پردازش در سیستم عامل ، شماره حساب، شماره پردازش در سیستم عامل و غیره
وقتیکه سیستم عامل CPU را به پردازش در سیستم عامل دیگر میدهد با استفاده از PCB تمام اطلاعاتی که جهت راه اندازی مجدد پردازش در سیستم عامل قبل لازم دارد را حفظ میکند. به این عملیات تعویض متن Context Switch انجام میپذیرد .
تعویض متن بوسیله بخشی از سیستم عامل به نام Dispatcher انجام میپذیرد. از آنجا که سیستم عامل خیلی با PCB سرو کار دارد، در بسیاری از کامپیوترها ثباتی سخت افزاری وجود دارد که همیشه PCB پردازش در سیستم عامل در حال اجزا اشاره میکند .
دستوراتی نیز وجود دارند که خیلی سریع اطلاعات را در PCB بار میکنند . عملیات تعویض متن الزاماً سربار اضافی (overhead)روی کامپیوتر ایجاد کرده و قدر از وقت CPU را جهت این کار به هدر میدهد، البته این زمان آنقدر زیاد نیستکه بر مزیت چند برنامگی غلبه کند .
زمان تعویض متن تابع سخت افزار میباشد و به طور نمونهای این زمان از 1تا100میکرو ثانیه متغیر است
زمان بندی در سیستم عامل
هدف چند برنامگی این است که در همه اوقات ,پردازشی در حالت اجرا وجود داشته باشد تا بهره وری CPU ما بین پردازش ها به قدر مکرر , سوئیچ نماید که کاربران با برنامه در حال اجرا محاوره داشته باشند.
زمانی که بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگیرد که کدامیک اول اجرا شود. بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد
|
امتیاز مطلب : 1026
|
تعداد امتیازدهندگان : 353
|
مجموع امتیاز : 353